using System.Collections.Generic;
using HCI.Questionaire.Entities;
using HCI.Questionaire.Exceptions;
using HCI.Questionaire.EventArgument;

namespace HCI.Questionaire.QuestionGroup
{
    public class QuestionGroup2 : TwoPagesQuestionGroup
    {
        public override string Description
        {
            get { return "ปัจจัยที่มีอิทธิพลต่อการตัดสินใจเลือกใช้บริการอินเตอร์เน็ตความเร็วสูง "; }
        }

        public override string Instruction
        {
            get { return "โปรดระบุระดับความเห็นของท่าน ว่าประเด็นต่อไปนี้มีผลต่อการตัดสินใจ เลือกใช้บริการอินเตอร์เน็ต ความเร็ว\nสูงของท่านเพียงใด"; }
        }

        public override string QuestionStateText
        {
            get
            {
                if (this.QuestionList == null)
                    return string.Format("1/{0}", this.QuestionList.Count);
                return string.Format("{0}/{1}", this.CurrentQuestionIndex + 1, this.QuestionList.Count);
            }
        }

        protected override List<Question> CreateQuestionInGroup()
        {
            //var questionList = new List<Question>();
            var qg1 = new RatingQuestionGroup { QuestionText = "ปัจจัยที่มีอิทธิพลต่อการตัดสินใจเลือกใช้บริการอินเตอร์เน็ตความเร็วสูง" };
            {
                var q1 = new RatingQuestion { QuestionText = "บริษัทผู้ให้บริการ", AnswerCollection = new List<Answer>() };
                q1.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q2 = new RatingQuestion { QuestionText = "ความเร็วในการส่งและรับข้อมูล", AnswerCollection = new List<Answer>() };
                q2.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q3 = new RatingQuestion { QuestionText = "ความเสถียรในการส่งและรับข้อมูล", AnswerCollection = new List<Answer>() };
                q3.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q4 = new RatingQuestion { QuestionText = "บริการหลังการขาย / ศูนย์ให้คำปรึกษาทางด้านเทคนิค", AnswerCollection = new List<Answer>() };
                q4.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q5 = new RatingQuestion { QuestionText = "มีบริการเสริมที่หลากหลาย", AnswerCollection = new List<Answer>() };
                q5.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q6 = new RatingQuestion { QuestionText = "ราคาค่าบริการรายเดือน", AnswerCollection = new List<Answer>() };
                q6.AddAnswer(new Answer { AnswerResult = 0.0 });

                qg1.Add(q1);
                qg1.Add(q2);
                qg1.Add(q3);
                qg1.Add(q4);
                qg1.Add(q5);
                qg1.Add(q6);
            }
            var qg2 = new RatingQuestionGroup { QuestionText = "ปัจจัยที่มีอิทธิพลต่อการตัดสินใจเลือกใช้บริการอินเตอร์เน็ตความเร็วสูง (ต่อ)" }; ;
            {
                var q7 = new RatingQuestion { QuestionText = "ความสะดวกในการสมัคร", AnswerCollection = new List<Answer>() };
                q7.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q8 = new RatingQuestion { QuestionText = "ความครอบคลุมของพื้นที่ให้บริการ", AnswerCollection = new List<Answer>() };
                q8.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q9 = new RatingQuestion { QuestionText = "ส่วนลดค่าบริการรายเดือน", AnswerCollection = new List<Answer>() };
                q9.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q10 = new RatingQuestion { QuestionText = "ของสมนาคุณ เช่น ฟรีโมเด็มฟรีค่าติดตั้ง", AnswerCollection = new List<Answer>() };
                q10.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q11 = new RatingQuestion { QuestionText = "รับประกันความพอใจคืนเงินได้ใน 30 วัน", AnswerCollection = new List<Answer>() };
                q11.AddAnswer(new Answer { AnswerResult = 0.0 });

                var q12 = new RatingQuestion { QuestionText = "การให้ส่วนลดพิเศษโดยร่วมมือกับธุรกิจอื่น ", AnswerCollection = new List<Answer>() };
                q12.AddAnswer(new Answer { AnswerResult = 0.0 });

                qg2.Add(q7);
                qg2.Add(q8);
                qg2.Add(q9);
                qg2.Add(q10);
                qg2.Add(q11);
                qg2.Add(q12);
            }

            this.AddQuestion(qg1);
            this.AddQuestion(qg2);
            return this._QuestionList;
        }

        public  override int GroupIndex
        {
            get { return 1; }
        }
    }
}